<?php
require_once PATH_OBJECT.'dataObject.php';

class dataObject_editions extends dataObject
{
	/** @desc    Identifiant de la liste
	 * @var     int
	 */
	public $_IDENTIFIANT_EDITIONS = 0;

	/**
	 * @desc    code de la liste
	 * @var     varchar
	 */
	public $_CODE_EDITIONS = 'NULL';
	/**
	 * @desc    libelle de la liste
	 * @var     varchar
	 */
	public $_LIBELLE_EDITIONS = 'NULL';



	public function __construct( $iId=0 )
	{
		parent::__construct();

		if ( $iId != 0 )
		{
			$sQuery = "SELECT   *   /*+ dataObject_editions::__construct */
                       FROM editions 
            		   WHERE Identifiant_editions =".$iId;

			$aRows =  self::$_oConnexion->query($sQuery);
			$aRow = $aRows[0];
			$this->_IDENTIFIANT_LISTES_EDITIONS  = $iId;
			$this->_CODE_LISTES_EDITIONS         = $aRow['Code_editions'];
			$this->_LIBELLE_LISTES_EDITIONS     = $aRow['Libelle_editions'];


		}
	}
	public function dataObject_editions( $iId=0 )
	{
		__construct( $iId);
	}
	/**
	 * récupere la table editions selon le(s) criter(s) précisés
	 */
	function editions_select( $sCritere = null )
	{
		$aRow = false;
		$sQuery = "SELECT   *
		FROM editions
		WHERE 1 = 1
		{$sCritere}";
			
		$aRow =  self::$_oConnexion->query($sQuery);

		return $aRow;
	}

	public function editions_getList()
	{
		$aRow = false;

		$aRow =  $this->editions_select ();

		return $aRow;
	}

	//******************************************************************************************************************//



	//Listes des appels d'échéances d'une unite
	public function listeAppelsEcheances($iIdUnite, $sDateDebut,$sDateFin)
	{
		$aRows = false;
		$sQuery ="SELECT DISTINCT Numero_contrat, Date_effet_contrat, Libelle_offre, Libelle_produit,
   		 				  Libelle_formule,Date_debut_echeance,Date_fin_echeance, Montant_echeance
				 FROM echeancier ec,contrat con,cotisation cot, offre o, produit p, formule f,unite u,
				 	  garantiesouscrite garsous , garantie gar
                 WHERE ec.Etat_echeance = 'A'
                 AND ec.Identifiant_cotisation = cot.Identifiant_cotisation
                 AND con.Identifiant_contrat = cot.Identifiant_contrat
                 AND con.Identifiant_unite = u.Identifiant_unite
                 AND u.Identifiant_unite = '".$iIdUnite."'
                 AND ec.Date_debut_echeance  >= '".conversionDates($sDateDebut)."'
				 AND ec.Date_fin_echeance <= '".conversionDates($sDateFin)."'	
                 AND garsous.Identifiant_contrat = con.Identifiant_contrat
    			 AND f.Identifiant_formule = garsous.Identifiant_formule
    			 AND garsous.Identifiant_garantie = gar.Identifiant_garantie
    			 AND gar.Identifiant_produit = p.Identifiant_produit
    			 AND p.Identifiant_offre = o.Identifiant_offre";;

		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}

	public function getNbAppelEcheanceRegion($idRegion, $sDateDebut,$sDateFin)
	{
		$aRows = false;
		$sQuery ="SELECT count(1) as Nombre
				 FROM echeancier ec, contrat con, cotisation cot, 
				 	offre o, produit p, formule f, garantiesouscrite garsous , garantie gar,
				 	unite u, region r
                 WHERE ec.Etat_echeance = 'A'
                 AND ec.Identifiant_cotisation = cot.Identifiant_cotisation
                 AND con.Identifiant_contrat = cot.Identifiant_contrat
                 AND con.Identifiant_unite = u.Identifiant_unite
                 AND u.Identifiant_region = r.Identifiant_region
                 AND r.Identifiant_region = '".$idRegion."'
                 AND ec.Date_debut_echeance  >= '".conversionDates($sDateDebut)."'
				 AND ec.Date_fin_echeance <= '".conversionDates($sDateFin)."'	
                 AND garsous.Identifiant_contrat = con.Identifiant_contrat
    			 AND f.Identifiant_formule = garsous.Identifiant_formule
    			 AND garsous.Identifiant_garantie = gar.Identifiant_garantie
    			 AND gar.Identifiant_produit = p.Identifiant_produit
    			 AND p.Identifiant_offre = o.Identifiant_offre";;

		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows[0]['Nombre'];
	}

	public function totalisationsAppelsEcheance($sDateDebut,$sDateFin){
		$aRows = false;
		$sQuery ="SELECT Code_region,Code_unite,ec.Identifiant_echeance,Montant_echeance,
						count(ec.Identifiant_echeance) as Nombre_echeances_appelees,
						sum(Montant_echeance) as Montant_echeances_appelees
				FROM unite u,region r,echeancier ec,cotisation cot,contrat con
				WHERE  ec.Etat_echeance = 'A'
				AND ec.Identifiant_cotisation = cot.Identifiant_cotisation
				AND cot.Identifiant_contrat = con.Identifiant_contrat
				AND con.Identifiant_unite = u.Identifiant_unite
				AND u.Identifiant_region = r.Identifiant_region
				AND ec.Date_debut_echeance  >= '".conversionDates($sDateDebut)."'
				AND ec.Date_fin_echeance <= '".conversionDates($sDateFin)."'
				GROUP BY Code_region,Code_unite with ROLLUP	";
		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}




	//******************************************************************************************************************//




	//Listes des actes de gestion d'un agent ou ceux automatique
	public function listeActesDeGestionAgent($iIdAgent, $sDateDebut,$sDateFin, $iIdUnite ='' )
	{
		$aRows = false;
		if($iIdAgent != '0')
		{
			$sQuery ="SELECT DISTINCT Numero_contrat, Date_effet_contrat, Libelle_offre, Libelle_produit, Libelle_formule,Nom_element
				  FROM contrat con, offre o, produit p, formule f, cotisation cot, evenement ev,
				       garantiesouscrite garsous , garantie gar, elementdico ed, utilisateur user, agent a
                  WHERE a.Identifiant_agent= '".$iIdAgent."'
                  AND user.Code_utilisateur = a.Code_agent
                  AND ev.Identifiant_agent = user.Identifiant_utilisateur
                  AND ev.Sous_type_evenement IN ('AMA','AMC','ARA','ARAA','ARC','ARE','AREA','AREC')
                  AND ed.Code_element = ev.Sous_type_evenement
                  AND ev.Identifiant_contrat = con.Identifiant_contrat
                  AND con.Date_effet_contrat >= '".conversionDates($sDateDebut)."'
                  AND con.Date_effet_contrat <= '".conversionDates($sDateFin)."'	
                  AND con.Identifiant_contrat = cot.Identifiant_contrat
                  AND garsous.Identifiant_contrat = con.Identifiant_contrat
    			  AND f.Identifiant_formule = garsous.Identifiant_formule
    			  AND garsous.Identifiant_garantie = gar.Identifiant_garantie
    			  AND gar.Identifiant_produit = p.Identifiant_produit
    			  AND p.Identifiant_offre = o.Identifiant_offre";
		}
		else
		{
			$sQuery ="SELECT DISTINCT Numero_contrat, Date_effet_contrat, Libelle_offre, Libelle_produit, 
						Libelle_formule, Nom_element
				  FROM contrat con, offre o, produit p, formule f, cotisation cot, evenement ev,
				       garantiesouscrite garsous , garantie gar, elementdico ed, unite u
                  WHERE con.Identifiant_unite = u.Identifiant_unite  
                  AND u.Identifiant_unite = '".$iIdUnite."'
                  AND ev.Identifiant_agent is NULL
                  AND ev.Sous_type_evenement IN ('AMA','AMC','ARA','ARAA','ARC','ARE','AREA','AREC')
                  AND ed.Code_element = ev.Sous_type_evenement
                  AND ev.Identifiant_contrat = con.Identifiant_contrat
                  AND con.Date_effet_contrat >= '".conversionDates($sDateDebut)."'
                  AND con.Date_effet_contrat <= '".conversionDates($sDateFin)."'	
                  AND con.Identifiant_contrat = cot.Identifiant_contrat
                  AND garsous.Identifiant_contrat = con.Identifiant_contrat
    			  AND f.Identifiant_formule = garsous.Identifiant_formule
    			  AND garsous.Identifiant_garantie = gar.Identifiant_garantie
    			  AND gar.Identifiant_produit = p.Identifiant_produit
    			  AND p.Identifiant_offre = o.Identifiant_offre";
		}
		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}



	public function totalisationsActesDeGestion($sActe,$sDateDebut,$sDateFin){
		$aRows = false;
		$sQuery ="SELECT Code_region,Code_unite,Code_agent,count(e.Identifiant_agent) as Nombre_actes_de_gestion
				FROM  evenement e,agent a,contrat con,unite u,region r,elementdico ed, utilisateur user
				WHERE Sous_type_evenement = '".$sActe."'
				AND ed.Code_element = e.Sous_type_evenement
				AND e.Identifiant_agent = user.Identifiant_utilisateur
				AND user.Code_utilisateur = a.Code_agent
				AND a.Identifiant_unite = u.Identifiant_unite
				AND u.Identifiant_region = r.Identifiant_region
				AND e.Identifiant_contrat = con.Identifiant_contrat
				AND con.Date_effet_contrat >= '".conversionDates($sDateDebut)."'
				AND con.Date_effet_contrat <= '".conversionDates($sDateFin)."'
				GROUP BY Code_region,Code_unite,Code_agent with ROLLUP ";

		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}


	//***********************************************************************************************************************************//



	//Listes des échéances impayées 
	public function listeEcheancesImpayees($iIdUnite,$sDateDebut,$sDateFin){
			
		$aRow = false;
		$sQuery ="SELECT DISTINCT Numero_contrat, Date_effet_contrat, Libelle_offre, Libelle_produit,
   		 				  Libelle_formule,Date_debut_echeance,Date_fin_echeance, Frequence_paiement ,Montant_echeance
				 FROM echeancier ec,contrat con,cotisation cot, offre o, produit p, formule f,unite u,
				      garantiesouscrite garsous , garantie gar
                 WHERE  ec.Etat_echeance = 'I'
                 AND ec.Identifiant_cotisation = cot.Identifiant_cotisation
                 AND con.Identifiant_contrat = cot.Identifiant_contrat
                 AND con.Identifiant_unite = u.Identifiant_unite
                 AND u.Identifiant_unite = '".$iIdUnite."'
                 AND ec.Date_debut_echeance  >= '".conversionDates($sDateDebut)."'
				 AND ec.Date_fin_echeance <= '".conversionDates($sDateFin)."'	
                 AND garsous.Identifiant_contrat = con.Identifiant_contrat
    			 AND f.Identifiant_formule = garsous.Identifiant_formule
    			 AND garsous.Identifiant_garantie = gar.Identifiant_garantie
    			 AND gar.Identifiant_produit = p.Identifiant_produit
    			 AND p.Identifiant_offre = o.Identifiant_offre";

		$aRow =  self::$_oConnexion->query($sQuery);
		return $aRow;
	}



	public function totalisationsEcheancesImpayees($sDateDebut,$sDateFin){
		$aRows = false;
		$sQuery ="SELECT Code_region,Code_unite,
						count(ec.Identifiant_echeance) as Nombre_echeances_impayees,
						sum(Montant_echeance) as Montant_echeances_impayees
				FROM  unite u,region r,echeancier ec,contrat con,cotisation cot
				WHERE  ec.Etat_echeance = 'I'
				AND ec.Identifiant_cotisation = cot.Identifiant_cotisation
				AND cot.Identifiant_contrat = con.Identifiant_contrat
				AND con.Identifiant_unite = u.Identifiant_unite
				AND u.Identifiant_region = r.Identifiant_region
				AND ec.Date_debut_echeance  >= '".conversionDates($sDateDebut)."'
				AND ec.Date_fin_echeance <= '".conversionDates($sDateFin)."'
				GROUP BY Code_region,Code_unite with ROLLUP	";

		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}

	//***********************************************************************************************************************************//


	//Listes des sinistres déclarés d'un agent
	public function getAgentWithSinDeclareUnite($idUnite, $sDateDebut, $sDateFin)
	{
			
		$aRows = false;
		$sQuery ="SELECT DISTINCT a.Identifiant_agent, Code_agent, Nom_agent,
    					  Code_unite, Nom_unite, 
    					  Code_region, Nom_region  
                   FROM agent a, unite u, region r,
                   		contrat con, sinistres s, offre o, produit p, formule f, evenement ev,
                   		garantiesouscrite garsous , garantie gar, utilisateur user
            	   WHERE a.Identifiant_unite = u.Identifiant_unite
    			   AND u.Identifiant_unite = '".$idUnite."'
    			   AND u.Identifiant_region = r.Identifiant_region
                  AND user.Code_utilisateur = a.Code_agent
                  AND ev.Identifiant_agent = user.Identifiant_utilisateur
                  AND ev.Type_evenement = 'S'
                  AND ev.Sous_type_evenement = 'SD'
                  AND ev.Identifiant_sinistre = s.Identifiant_sinistre
                  AND s.Identifiant_contrat = con.Identifiant_contrat
                  AND s.Date_declaration_sinistre  >= '".conversionDates($sDateDebut)."'
                  AND s.Date_declaration_sinistre <= '".conversionDates($sDateFin)."'	
                  AND garsous.Identifiant_contrat = con.Identifiant_contrat
    			  AND f.Identifiant_formule = garsous.Identifiant_formule
    			  AND garsous.Identifiant_garantie = gar.Identifiant_garantie
    			  AND gar.Identifiant_produit = p.Identifiant_produit
    			  AND p.Identifiant_offre = o.Identifiant_offre";

		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}

	public function listeSinistresDeclaresAgent($iIdAgent, $sDateDebut, $sDateFin)
	{
			
		$aRows = false;
		$sQuery ="SELECT DISTINCT Numero_contrat, Date_effet_contrat, Libelle_offre, Libelle_produit,
   		 		  		  Libelle_formule,Type_sinistre,Date_survenance_sinistre,Date_declaration_sinistre,
   		 		  		  Etat_sinistre,Decision_partenaire_sinistre,Motif_refus_sinistre
				  FROM contrat con,sinistres s, offre o, produit p, formule f,evenement ev,
				  	   garantiesouscrite garsous , garantie gar, utilisateur user, agent a
                  WHERE a.Identifiant_agent= '".$iIdAgent."'
                  AND user.Code_utilisateur = a.Code_agent
                  AND ev.Identifiant_agent = user.Identifiant_utilisateur
                  AND ev.Type_evenement = 'S'
                  AND ev.Sous_type_evenement = 'SD'
                  AND ev.Identifiant_sinistre = s.Identifiant_sinistre
                  AND s.Identifiant_contrat = con.Identifiant_contrat
                  AND s.Date_declaration_sinistre  >= '".conversionDates($sDateDebut)."'
                  AND s.Date_declaration_sinistre <= '".conversionDates($sDateFin)."'	
                  AND garsous.Identifiant_contrat = con.Identifiant_contrat
    			  AND f.Identifiant_formule = garsous.Identifiant_formule
    			  AND garsous.Identifiant_garantie = gar.Identifiant_garantie
    			  AND gar.Identifiant_produit = p.Identifiant_produit
    			  AND p.Identifiant_offre = o.Identifiant_offre";
		
		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}

	public function totalisationsSinistresDeclares($sTypeSinistre,$sDateDebut,$sDateFin){
		$aRows = false;
		$sQuery ="SELECT Code_region,Code_unite,Code_agent,
						count(ev.Identifiant_agent) as Nombre_sinistres_declares
				FROM  evenement ev,agent a,unite u,region r,contrat con,sinistres s, utilisateur user
				WHERE  ev.Type_evenement = 'S'
                AND ev.Sous_type_evenement = 'SD'
                AND ev.Identifiant_sinistre = s.Identifiant_sinistre
                AND s.Type_sinistre = '".$sTypeSinistre."'
				AND ev.Identifiant_agent = user.Identifiant_utilisateur
				AND user.Code_utilisateur = a.Code_agent
				AND a.Identifiant_unite = u.Identifiant_unite
				AND u.Identifiant_region = r.Identifiant_region
				AND s.Identifiant_contrat = con.Identifiant_contrat
				AND s.Date_declaration_sinistre  >= '".conversionDates($sDateDebut)."'
                AND s.Date_declaration_sinistre <= '".conversionDates($sDateFin)."'	
				GROUP BY Code_region,Code_unite,Code_agent with ROLLUP	";

		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}

	//*****************************************************************************************************************************//



	//Listes des sinistres réglés d'un agent
	public function listeSinistresReglesAgent($iIdAgent, $sDateDebut, $sDateFin)
	{		
		$aRows = false;
		$aRows = false;
		$sQuery ="SELECT DISTINCT Numero_contrat, Date_effet_contrat, 
						Libelle_offre, Libelle_produit,  Libelle_formule, 
						Type_sinistre, Date_survenance_sinistre, Date_declaration_sinistre,
   		 		  		Type_prestation, Montant_prestation, Date_evenement
				  FROM prestation pre, contrat con,sinistres s, offre o, produit p, formule f,evenement ev,
				  	   garantiesouscrite garsous , garantie gar, utilisateur user, agent a
                  WHERE a.Identifiant_agent= '".$iIdAgent."'
                  AND user.Code_utilisateur = a.Code_agent
                  AND ev.Identifiant_agent = user.Identifiant_utilisateur
                  AND ev.Type_evenement = 'S'
                  AND ev.Sous_type_evenement = 'FRS'
                  AND ev.Identifiant_sinistre = s.Identifiant_sinistre
                  AND s.Identifiant_contrat = con.Identifiant_contrat
                  AND s.Identifiant_sinistre = pre.Identifiant_sinistre
                  AND Date_evenement >= '".conversionDates($sDateDebut)."'
                  AND Date_evenement <= '".conversionDates($sDateFin)."'	
                  AND garsous.Identifiant_contrat = con.Identifiant_contrat
    			  AND f.Identifiant_formule = garsous.Identifiant_formule
    			  AND garsous.Identifiant_garantie = gar.Identifiant_garantie
    			  AND gar.Identifiant_produit = p.Identifiant_produit
    			  AND p.Identifiant_offre = o.Identifiant_offre";
		
		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}



	public function totalisationsSinistresRegles($sTypePrestation,$sTypeSinistre,$sDateDebut,$sDateFin){
		$aRows = false;
		$sQuery ="SELECT Code_region, Code_unite, Code_agent,
						 count(ev.Identifiant_agent) as Nombre_sinistres_regles,
						 sum(Montant_prestation) as Montant_prestations
				FROM  evenement ev,agent a,unite u,region r,contrat con,sinistres s,prestation pre, utilisateur user
				WHERE  ev.Type_evenement = 'S'
                AND ev.Sous_type_evenement = 'FRS'
                AND ev.Identifiant_sinistre = s.Identifiant_sinistre
                AND s.Type_sinistre = '".$sTypeSinistre."'
                AND s.Identifiant_sinistre = pre.Identifiant_sinistre
                AND pre.Type_prestation = '".$sTypePrestation."'
				AND ev.Identifiant_agent = user.Identifiant_utilisateur
				AND user.Code_utilisateur = a.Code_agent
				AND a.Identifiant_unite = u.Identifiant_unite
				AND u.Identifiant_region = r.Identifiant_region
				AND s.Identifiant_contrat = con.Identifiant_contrat
				AND Date_evenement  >= '".conversionDates($sDateDebut)."'
                AND Date_evenement <= '".conversionDates($sDateFin)."'	
				GROUP BY Code_region,Code_unite,Code_agent with ROLLUP	";

		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}


	//*****************************************************************************************************************************//

	//Listes des souscriptions d'un agent
	public function listeSouscriptionsAgent($iIdAgent,$sDateDebut,$sDateFin)
	{
		$aRows = false;
		$sQuery ="SELECT DISTINCT Numero_contrat, Date_effet_contrat, Libelle_offre, Libelle_produit, Libelle_formule,
   		 						   Montant_base_cotisation, Montant_frais_echeance_cotisation, Montant_droits_entree_cotisation, IFNULL(Frequence_paiement,'N/A') as Frequence_paiement
				   FROM contrat con, offre o, produit p, formule f, cotisation cot, evenement ev,
				  	   garantiesouscrite garsous , garantie gar, utilisateur user, agent a
                  WHERE a.Identifiant_agent= '".$iIdAgent."'
                  AND user.Code_utilisateur = a.Code_agent
                  AND ev.Identifiant_agent = user.Identifiant_utilisateur
                  AND ev.Type_evenement = 'G'
                  AND ev.Sous_type_evenement = 'ASO'
                  AND ev.Identifiant_contrat = con.Identifiant_contrat
                  AND con.Date_effet_contrat >= '".conversionDates($sDateDebut)."'
                  AND con.Date_effet_contrat <= '".conversionDates($sDateFin)."'	
                  AND con.Identifiant_contrat = cot.Identifiant_contrat
                  AND garsous.Identifiant_contrat = con.Identifiant_contrat
    			  AND f.Identifiant_formule = garsous.Identifiant_formule
    			  AND garsous.Identifiant_garantie = gar.Identifiant_garantie
    			  AND gar.Identifiant_produit = p.Identifiant_produit
    			  AND p.Identifiant_offre = o.Identifiant_offre";
	
		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}



	public function totalisationsSouscriptions($sDateDebut,$sDateFin){
		$aRows = false;
		$sQuery = "SELECT Code_region,Code_unite,Code_agent,count(e.Identifiant_agent) as Nombre_contrats,
								cot.Montant_base_cotisation as Montant_cotisation,
								cot.Montant_frais_echeance_cotisation as Montant_frais,
       			  				sum(cot.Montant_droits_entree_cotisation) as Montant_droits_entree 
						FROM  evenement e,agent a,contrat con,cotisation cot,unite u,region r, utilisateur user
						WHERE Type_evenement ='G'		
							AND Sous_type_evenement ='ASO'
							AND e.Identifiant_agent = user.Identifiant_utilisateur
							AND user.Code_utilisateur = a.Code_agent
							AND a.Identifiant_unite = u.Identifiant_unite
							AND u.Identifiant_region = r.Identifiant_region
							AND e.Identifiant_contrat = con.Identifiant_contrat
							AND con.Date_effet_contrat >= '".conversionDates($sDateDebut)."'
							AND con.Date_effet_contrat <= '".conversionDates($sDateFin)."'	
							AND con.Identifiant_contrat = cot.Identifiant_contrat
							GROUP BY Code_region,Code_unite,Code_agent with ROLLUP";

		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}


	// *******************************************************************************************************************//

	public static function getIdDirection()
	{
		$aRow = false;
		$sQuery = "SELECT MAX(Identifiant_direction) as Identifiant_direction
                   FROM direction";
			
		$aRow =  self::$_oConnexion->query($sQuery);

		return $aRow[0]['Identifiant_direction'];
			
	}
	
	public static function getNomDirection()
	{
		$aRow = false;
		$sQuery = "SELECT   *   /*+ dataObject_editions::getNomDirection */
                       FROM direction 
            		   WHERE Identifiant_direction =".self::getIdDirection();

		$aRows =  self::$_oConnexion->query($sQuery);
		if(!empty($aRows)) $aRow = $aRows[0];
		
		return $aRow['Nom_direction'];	
	}
	
	public static function getCodeDirection()
	{
		$aRow = false;
		$sQuery = "SELECT   *   /*+ dataObject_editions::getCodeDirection */
                       FROM direction 
            		   WHERE Identifiant_direction =".self::getIdDirection();

		$aRows =  self::$_oConnexion->query($sQuery);
		if(!empty($aRows)) $aRow = $aRows[0];
		
		return $aRow['Code_direction'];	
			
	}
	//fonction d'un agent selon son profil
	public function idAgent($sCodeAgent){
		$aRow = false;
		$sQuery = "SELECT Identifiant_agent, Nom_agent
                   FROM agent a
            	   WHERE a.Code_agent= '".$sCodeAgent."'";
			
		$aRow =  self::$_oConnexion->query($sQuery);

		return $aRow[0][Identifiant_agent];
			
	}


	//nom d'un agent selon son code
	public function getNomAgent($sCodeAgent){
		$aRow = false;
		$sQuery = "SELECT   Nom_agent
                   FROM agent a
            	   WHERE a.Code_agent = '".$sCodeAgent."'";
			
		$aRow =  self::$_oConnexion->query($sQuery);

		return $aRow[0]['Nom_agent'];
			
	}


	//nom d'une unite selon son code
	public function getNomUnite($sCodeUnite){
		$aRow = false;
		$sQuery = "SELECT   Nom_unite
                   FROM unite u
            	   WHERE u.Code_unite = '".$sCodeUnite."'";
			
		$aRow =  self::$_oConnexion->query($sQuery);
		return $aRow[0]['Nom_unite'];
			
	}


	public function getNomRegion($sCodeRegion){
		$aRow = false;
		$sQuery = "SELECT   Nom_region
                   FROM region r
            	   WHERE r.Code_region= '".$sCodeRegion."'";
			
		$aRow =  self::$_oConnexion->query($sQuery);

		return $aRow[0]['Nom_region'];
			
	}


	//l'Identifiant d'une unité selon l'Identifiant de son responsable
	public function idUnite($iIdResponsable){
		$aRow = false;
		$sQuery = "SELECT   Identifiant_unite
                   FROM unite u
            	   WHERE u.Identifiant_utilisateur= '".$iIdResponsable."'";

		$aRow =  self::$_oConnexion->query($sQuery);
		return $aRow[0][Identifiant_unite];

	}


	//l'Identifiant d'une région selon l'Identifiant de son directeur
	public function idRegion($iIdDirecteur)
	{
		$aRow = false;
		$sQuery = "SELECT   Identifiant_region
                   FROM region r
            	   WHERE r.Identifiant_utilisateur= '".$iIdDirecteur."'";

		$aRow =  self::$_oConnexion->query($sQuery);

		return $aRow[0]['Identifiant_region'];

	}
	


	// tous les agents d'une unité
	public function agentsUnite($iIdUnite)
	{
		$aRows = false;
		$sQuery = "SELECT Identifiant_agent, Code_agent, Nom_agent,
    					  Code_unite, Nom_unite, Code_region, Nom_region  
                   FROM agent a,unite u,region r
            	   WHERE a.Identifiant_unite = '".$iIdUnite."'
    			   AND u.Identifiant_unite = '".$iIdUnite."'
    			   AND u.Identifiant_region = r.Identifiant_region";

		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}


	// toutes les unités d'une région
	public function unitesRegion($iIdRegion)
	{
		$aRows = false;
		$sQuery = "SELECT distinct Identifiant_unite, Code_unite, Nom_unite ,
					 Identifiant_utilisateur
                   FROM unite u
            	   WHERE u.Identifiant_region= '".$iIdRegion."'";

		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}

	// toutes les régions de la direction
	public function regionsDirection($iIdDirection)
	{
		$aRows = false;
		$sQuery = "SELECT distinct Identifiant_region, Code_region, Nom_region
                   FROM region r
            	   WHERE r.Identifiant_direction = '".$iIdDirection."'";

		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}
	
	public function infosRegion($idRegion)
	{
		$aRows = false;
		$sQuery = "SELECT   Identifiant_region, Code_region, Nom_region
                   FROM region 
            	   WHERE Identifiant_region = '".$idRegion."'";

		$aRows =  self::$_oConnexion->query($sQuery);
		return $aRows;
	}
	
	public function infosUnite($idUnite)
	{
		$aRows = false;
		$sQuery = "SELECT  u.Identifiant_unite, Code_unite, Nom_unite,
		           		u.Identifiant_region, Code_region, Nom_region
                   FROM unite u, region r 
            	   WHERE u.Identifiant_unite = '".$idUnite."'
            	   AND u.Identifiant_region = r.Identifiant_region";

		$aRows =  self::$_oConnexion->query($sQuery);
		if(!empty($aRows))
			return $aRows[0];
		return $aRows;
	}


	//Obtenir le code du profil pou un user donné
	public function codeProfil($sIdUserGroup){
		$aRow = false;
		$sQuery = "SELECT   code_profil
                   FROM profil 
            	   WHERE Identifiant_profil= ".$sIdUserGroup;

		$aRow =  self::$_oConnexion->query($sQuery);

		return $aRow;

	}


	//Obtenir les informations sur l'agent,son unite et sa region
	public function agentUniteRegion($sIdAgent)
	{
		$aRow = false;
		$sQuery = "SELECT a.Identifiant_agent, Code_agent, Nom_agent,
					Code_unite, Nom_unite, Code_region, Nom_region
				   FROM agent a, unite u, region r, utilisateur user
                   WHERE user.Identifiant_utilisateur = '".$sIdAgent."'
                   AND user.Code_utilisateur = a.Code_agent
                   AND a.Identifiant_unite = u.Identifiant_unite
                   AND u.Identifiant_region = r.Identifiant_region";

		$aRow =  self::$_oConnexion->query($sQuery);

		return $aRow[0];

	}


}
?>